package com.ming_za.od_updater_sdk.transmit;
import com.ming_za.od_updater_sdk.IUpdater;
import com.ming_za.od_updater_sdk.ODUpdater;
import com.ming_za.od_updater_sdk.obj.Res;

import java.io.IOException;
import java.io.OutputStream;

/**
 * 传输流接口
 * <p>该接口用于接入数据传输时的操作，例如：进度条监听等</p>
 */
public interface IStreamTransmit {

    /**
     * 传输操作
     * @param outputStream 输出流
     * @param buff 输入流里读取的缓存
     * @param buffSize 缓存数据大小
     * @param odUpdater 更新器实例
     */
    void transmit(OutputStream outputStream,byte[] buff,int buffSize, IUpdater odUpdater) throws IOException;

    /**
     * 传输后回调
     * @param transmissionTotalSize 当前已传输的大小
     * @param fileSize 资源文件总大小
     * @param res 当前传输的资源
     * @param odUpdater 更新器实例
     */
    void postTransmit(long transmissionTotalSize, long fileSize, Res res, IUpdater odUpdater);

}
